﻿using System.Data;
using MySqlConnector;

namespace Front._1124;

public partial class BookMain : Form
{
    public BookMain()
    {
        InitializeComponent();
    }

    private void BookMain_Load(object sender, EventArgs e)
    {
        //初始化操作
        //查询所有的图书
        GetAllBooks();

        //查询所有的图书分类
        GetAllCategories();
    }

    private void GetAllCategories()
    {
        using var connection = new MySqlConnection("server=localhost;port=3306;database=book;user=root;password=root;charset=utf8mb4;AllowPublicKeyRetrieval=True;");
        connection.Open();
        
        string sql = "select distinct book_category from book_info";
        //创建适配器对象
        MySqlDataAdapter adapter = new MySqlDataAdapter(sql, connection);
        //创建数据库
        DataSet dataSet = new DataSet();
        //填充数据
        adapter.Fill(dataSet, "book_category");
        //绑定数据
        DataTable? dataTable = dataSet.Tables["book_category"];
        //插入全部行
        DataRow row = dataTable.NewRow();
        row[0] = "全部";
        dataTable.Rows.InsertAt(row,0);
        //绑定数据
        this.comboBox1.DataSource = dataTable;
        this.comboBox1.DisplayMember = dataTable.Columns[0].ColumnName;
    }

    private void GetAllBooks()
    {
        using var connection = new MySqlConnection("server=localhost;port=3306;database=book;user=root;password=root;charset=utf8mb4;AllowPublicKeyRetrieval=True;");
        connection.Open();
        
        string sql = "SELECT book_id,isbn,book_name,author FROM book_info";
        //创建适配器对象
        MySqlDataAdapter adapter = new MySqlDataAdapter(sql, connection);
        //创建数据库
        DataSet dataSet = new DataSet();
        //填充数据
        adapter.Fill(dataSet, "book_info");
        //绑定数据
        this.dataGridView1.DataSource = dataSet.Tables["book_info"];
    }

    private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        //
        DialogResult result = MessageBox.Show(text: "确定要删除此条数据吗？", caption: "警告", MessageBoxButtons.OKCancel);
        if (result == DialogResult.OK)
        {
            //获取选中的行
            int bookId = (int)this.dataGridView1.SelectedRows[0].Cells[0].Value;
            using var connection = new MySqlConnection("server=localhost;port=3306;database=book;user=root;password=root;charset=utf8mb4;AllowPublicKeyRetrieval=True;");
            connection.Open();
            string sql = "delete from book_info where book_id = @bookId";
            using var command = new MySqlCommand(sql, connection);
            command.Parameters.AddWithValue("bookId", bookId);
            //执行删除方法
            int count = command.ExecuteNonQuery();
            if (count > 0)
            {
                MessageBox.Show("删除成功");
                GetAllBooks();
            }
            else
            {
                MessageBox.Show("删除失败");
            }
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        AddBookForm addBookForm = new AddBookForm();
        DialogResult result = addBookForm.ShowDialog();
        if (result == DialogResult.OK)
        {
            GetAllBooks();
        }
    }
    
}